home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The 640 MEG Shareware Studio 2
/
The 640 Meg Shareware Studio CD-ROM Volume II (Data Express)(1993).ISO
/
clang
/
nn.zip
/
GLOBAL.H
< prev
next >
Wrap
C/C++ Source or Header
|
1989-12-31
|
3KB
|
180 lines
/*
* Marks for global/external variables
*/
#define export /* export variable from module */
#define import extern /* import variable into module */
/*
* Various constants and types
*/
typedef int32 article_number;
typedef int16 group_number;
typedef uint32 time_stamp;
/* frequently used characters */
#define NUL '\0'
#define TAB '\t'
#define NL '\n'
#define CR '\r'
#define BS '\b'
#define SP ' '
/* misc macros */
#define fl fflush(stdout)
#ifdef CONTROL_
#undef CONTROL_
#endif
#define CONTROL_(c) (c&037)
#ifndef HAVE_STRCHR
#define strrchr rindex
#define strchr index
#endif
#ifdef SIGNAL_HANDLERS_ARE_VOID
typedef void sig_type;
#else
typedef int sig_type;
#endif
#ifndef NNTP
#undef NNTP_POST
#endif
/*
* Some systems don't define these in <sys/stat.h>
*/
#ifndef S_IFMT
#define S_IFMT 0170000 /* type of file */
#define S_IFDIR 0040000 /* directory */
#define S_IFREG 0100000 /* regular */
#endif
#ifndef O_RDONLY
#define O_RDONLY 0
#define O_WRONLY 1
#define O_RDWR 2
#endif
/* define types of library functions */
char *malloc(), *calloc();
char *getenv(), *ctime();
char *strchr(), *strrchr();
off_t lseek(), ftell(), tell();
time_t time();
int atoi();
long atol();
/* define types of own functions */
char *mk_file_name(), *home_relative();
char *date_time(), *user_name();
char *copy_str();
time_t file_exist(), m_time();
extern FILE *open_file();
char *relative();
#define OPEN_READ 0 /* open for reading */
#define OPEN_UPDATE 1 /* open/create for update */
#define OPEN_CREATE 2 /* create/truncate for write */
#define OPEN_APPEND 3 /* open for append */
#define DONT_CREATE 0x40 /* return if file does not exist */
#define MUST_EXIST 0x80 /* fatal error if cannot open */
#define OPEN_UNLINK 0x100 /* unlink after open (not OPEN_UPDATE) */
/*
* Other external definitions
*
* NOTICE: the distinction between pointers and arrays is important
* here (they are global variables - not function arguments)
*/
extern char
*home_directory,
*nn_directory,
news_directory[],
lib_directory[],
db_directory[],
*pager;
extern int
s_hangup, /* hangup signal */
s_keyboard, /* keyboard signal */
s_pipe, /* broken pipe */
s_redraw, /* continue signal after stop */
#ifdef NNTP
use_nntp, /* 1 iff we are using nntp */
#endif
is_master;
unsigned short /* as they are on most systems... */
user_id,
group_id;
int
process_id;
extern int errno;
#include "vararg.h"
#include "data.h"
/*
* db external data
*/
extern master_header master;
/* group headers */
extern group_header *active_groups, **sorted_groups;
/* current group information */
extern char group_path_name[];
extern char *group_file_name;
extern group_header *current_group, *group_sequence;
extern group_header *lookup();
#define Loop_Groups_Number(num) \
for (num = master.number_of_groups; --num >= 0; )
#define Loop_Groups_Header(gh) \
for (gh=active_groups+master.number_of_groups; --gh >= active_groups;)
int l_g_index;
#define Loop_Groups_Sorted(gh) \
for (l_g_index = 0; \
(l_g_index < master.number_of_groups) && \
(gh = sorted_groups[l_g_index]) ;\
l_g_index++)
#define Loop_Groups_Sequence(gh) \
for (gh = group_sequence; gh; gh = gh->next_group)